﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VirtualPress.Infrastructure.Entities.Enum
{
    public static class EnumMapping
    {
        public static string Mapping(this Gender gender)
        {
            switch (gender)
            {
                case Gender.Female:
                    return "女士";
                default:
                case Gender.Male:
                    return "先生";
            }
        }
        public static string Mapping(this AreaCode areaCode)
        {
            switch (areaCode)
            { 
                case AreaCode.AnHui:
                    return "安徽";
                case AreaCode.BeiJing:
                    return "北京";
                case AreaCode.ChongQing:
                    return "重庆";
                case AreaCode.FuJian:
                    return "福建";
                case AreaCode.GanSu:
                    return "甘肃";
                case AreaCode.GuangDong:
                    return "广东";
                case AreaCode.GuangXi:
                    return "广西";
                case AreaCode.GuiZhou:
                    return "贵州";
                case AreaCode.HaiNan:
                    return "海南";
                case AreaCode.HeBei:
                    return "河北";
                case AreaCode.HeiLongJiang:
                    return "黑龙江";
                case AreaCode.HeNan:
                    return "河南";
                case AreaCode.HuBei:
                    return "湖北";
                case AreaCode.HuNan:
                    return "湖南";
                case AreaCode.JiangSu:
                    return "江苏";
                case AreaCode.JiangXi:
                    return "江西";
                case AreaCode.JiLin:
                    return "吉林";
                case AreaCode.LiaoNing:
                    return "辽宁";
                case AreaCode.NeiMengGu:
                    return "内蒙古";
                case AreaCode.NingXia:
                    return "宁夏";
                case AreaCode.QingHai:
                    return "青海";
                case AreaCode.ShanDong:
                    return "山东";
                case AreaCode.ShangHai:
                    return "上海";
                case AreaCode.ShanXi:
                    return "山西";
                case AreaCode.ShanXi_s:
                    return "陕西";
                case AreaCode.SiChuan:
                    return "四川";
                case AreaCode.TianJin:
                    return "天津";
                case AreaCode.XiZang:
                    return "西藏";
                case AreaCode.XinJiang:
                    return "新疆";
                case AreaCode.YunNan:
                    return "云南";
                case AreaCode.ZheJiang:
                    return "浙江;";
            }
            return "其他";
        }
        public static string Mapping(this Location location)
        {
            switch (location)
            { 
                default:
                    return "其他";
            }
        }
        public static string Mapping(this Profession profession)
        {
            switch (profession)
            { 
                case Profession.DiQiuYuHuanJing:
                    return "地球与环境";
                case Profession.GongChengJiShu:
                    return "工程技术";
                case Profession.HuaXueYuCaiLiao:
                    return "化学与材料";
                case Profession.JingJiYuGuanLi:
                    return "经济与管理";
                case Profession.RenWenSheKe:
                    return "人文社科";
                case Profession.ShengMingKeXue:
                    return "生命科学";
                case Profession.ShiYouHuaGong:
                    return "石油化工";
                case Profession.ShuXueYuWuLi:
                    return "数学与物理";
                case Profession.XinXiTongXun:
                    return "信息通讯";
                case Profession.YeJinKuangYe:
                    return "冶金矿业";
                case Profession.YiYaoWeiSheng:
                    return "医药卫生";
                default:
                case Profession.Default:
                    return "其他";
            }
        }
        public static string Mapping(this PubRate pubRate)
        {
            switch (pubRate)
            {
                case PubRate.HalfMonth:
                    return "半月刊";
                case PubRate.HalfYear:
                    return "半年刊";
                case PubRate.Month:
                    return "月刊";
                case PubRate.Quarter:
                    return "季刊";
                case PubRate.TwoMonth:
                    return "双月刊";
                case PubRate.Year:
                    return "年刊";
                default:
                case PubRate.Other:
                    return "其他";
            }
        }
        public static string Mapping(this ArticleStatus articleStatus)
        {
            switch (articleStatus)
            {
                case ArticleStatus.Open:
                    return "待审核";
                case ArticleStatus.BuJiaoFei:
                    return "补缴费用";
                case ArticleStatus.ChuBanYiJiaoFei:
                    return "录用已缴费";
                case ArticleStatus.LuYong:
                    return "已录用";
                case ArticleStatus.YiChuBan:
                    return "已出版";
                case ArticleStatus.ZhongShen:
                    return "终审中";
                case ArticleStatus.ZhongShenXiuDing:
                    return "终审修订";
                case ArticleStatus.ZhongShenWanCheng:
                    return "终审完成";
                case ArticleStatus.ZhongShenXiuDingWanCheng:
                    return "终审修订完成";
                case ArticleStatus.ZhuanShen:
                    return "专审中";
                case ArticleStatus.ZhuanShenXiuDingWanCheng:
                    return "专审修订完成";
                case ArticleStatus.ZhuanShenXiuDing:
                    return "专审修订";
                case ArticleStatus.ZhuanShenDaiFenPei:
                    return "待专审";
                case ArticleStatus.ZhuanShenDaiJiaoFei:
                    return "专审待缴费";
                case ArticleStatus.ZhuanShenWanCheng:
                    return "专审完成";
                case ArticleStatus.DaiChuBan:
                    return "待出版";
                case ArticleStatus.Revise:
                    return "编辑校对";
                case ArticleStatus.Complete:
                    return "校对完成";
                case ArticleStatus.Publish:
                    return "已出版";
                default:
                case ArticleStatus.Close:
                    return "废弃";
            }
        }
        public static string Mapping(this ExamineStep examineStep)
        {
            switch (examineStep)
            {
                case ExamineStep.ChuShen:
                    return "初审";
                case ExamineStep.ZhongShen:
                    return "终审";
                case ExamineStep.ZhuanShen:
                    return "专审";
                case ExamineStep.Examine:
                    return "审核";
            }
            return "";
        }
        public static string Mapping(this ExamineStatus examineStatus)
        {
            switch (examineStatus)
            {
                default:
                case ExamineStatus.DaiShenHe:
                    return "待审核";
                case ExamineStatus.WanCheng:
                    return "审核完成";
                case ExamineStatus.WanChengWeiTiJiao:
                    return "完成未提交";
                case ExamineStatus.Decline:
                    return "拒绝审稿";
                case ExamineStatus.QuXiao:
                    return "取消审核";
            }
        }
        public static string Mapping(this ExamineSuggest examineSuggest)
        {
            switch (examineSuggest)
            { 
                default:
                case ExamineSuggest.DaGai:
                    return "较大改动";
                case ExamineSuggest.JieShou:
                    return "接收";
                case ExamineSuggest.Tuijian:
                    return "推荐接收";
                case ExamineSuggest.XiaoGai:
                    return "较小改动";
                case ExamineSuggest.JuJue:
                    return "拒绝";
            }
        }
        public static string Mapping(this JournalItemStatus journalItemStatus)
        {
            switch (journalItemStatus)
            {
                default:
                case JournalItemStatus.Create:
                    return "筹备";
                case JournalItemStatus.Publish:
                    return "已出版";
            }
        }
        public static string Mapping(this JournalType type)
        {
            switch (type)
            { 
                default:
                case JournalType.technicality:
                    return "学术类期刊";
                case JournalType.nonscholastic:
                    return "非学术类期刊";
            }
        }
        public static string Mapping(this MeetingItemStatus status)
        {
            switch (status)
            { 
                default:
                case MeetingItemStatus.Create:
                    return "筹备中";
                case MeetingItemStatus.Publish:
                    return "已结束";
            }
        }
        public static string Mapping(this PayType payType)
        {
            switch (payType)
            { 
                case PayType.Alipay:
                    return "支付宝支付";
                default:
                case PayType.Offline:
                    return "线下支付";
            }
        }
        public static string Mapping(this Aptitude aptitude)
        {
            switch (aptitude)
            { 
                case Aptitude.BeiDaHeXin:
                    return "北大核心";
                case Aptitude.CSCD:
                    return "CSCD";
                case Aptitude.CSCD_Ext:
                    return "CSCD扩展";
                case Aptitude.CSSCI:
                    return "CSSCI";
                case Aptitude.CSSCI_Ext:
                    return "CSSCI扩展";
                case Aptitude.EI:
                    return "EI";
                case Aptitude.GuoJiaJi:
                    return "国家级";
                case Aptitude.KeJiTongJiYuanHeXin:
                    return "科技统计院核心";
                case Aptitude.SCI:
                    return "SCI";
                case Aptitude.ShenJi:
                    return "省级";
                case Aptitude.ZheJiangHeXin:
                    return "浙江核心";
            }
            return "";
        }
        public static string Mapping(this Language language)
        {
            switch (language)
            { 
                case Language.English:
                    return "英文";
                case Language.Zh_CN:
                    return "中文";
                case Language.Other:
                    return "其他";
            }
            return "";
        }
    }
}
